This subject matter of this specification relates to memory management for programs operating asynchronously.
Computer systems operate multiple programs concurrently. On a single-microprocessor system, one program may be active while other concurrently operating programs may be inactive. On a multi-microprocessor system, multiple concurrently operating programs may be active. In some cases, multiple concurrently operating programs may share the same resource available on the computer system. For example, two concurrently operating programs may use the same portion of computer memory available on the computer system.
The concurrently operating programs also may be operating asynchronously relative to each other, such that they carry out operations independently of one another. However, when concurrently operating programs share a resource, such as memory, the programs may need to coordinate their respective use of the shared resource.